package cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.wxexpress;

import cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.wxexpress.wxExpressCreate.*;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@NoArgsConstructor
@Data
public class WxExpressCreateDTO {

    /**
     * 订单来源，0为小程序订单，2为App或H5订单，填2则不发送物流服务通知
     */
    @JsonProperty("add_source")
    private Integer addSource;

    /**
     * 订单ID，须保证全局唯一，不超过512字节
     */
    @JsonProperty("order_id")
    private String orderId;

    /**
     * 用户openid，当add_source=2时无需填写（不发送物流服务通知）
     */
    @JsonProperty("openid")
    private String openid;

    /**
     * 快递公司ID，参见getAllDelivery
     */
    @JsonProperty("delivery_id")
    private String deliveryId;

    /**
     * 快递客户编码或者现付编码
     */
    @JsonProperty("biz_id")
    private String bizId;

    /**
     * 快递备注信息，比如"易碎物品"，不超过1024字节
     */
    @JsonProperty("custom_remark")
    private String customRemark;

    /**
     * Unix 时间戳, 单位秒，顺丰必须传。 预期的上门揽件时间，0表示已事先约定取件时间；否则请传预期揽件时间戳，需大于当前时间，收件员会在预期时间附近上门。例如expect_time为“1557989929”，表示希望收件员将在2019年05月16日14:58:49-15:58:49内上门取货。说明：若选择 了预期揽件时间，请不要自己打单，由上门揽件的时候打印。如果是下顺丰散单，则必传此字段，否则不会有收件员上门揽件。
     */
    @JsonProperty("expect_time")
    private Integer expectTime;

    /**
     * 发件人信息
     */
    @JsonProperty("sender")
    private SenderDTO sender;

    /**
     * 收件人信息
     */
    @JsonProperty("receiver")
    private ReceiverDTO receiver;

    /**
     * 商品信息，会展示到物流服务通知和电子面单中
     */
    @JsonProperty("shop")
    private ShopDTO shop;

    /**
     * 包裹信息，将传递给快递公司
     */
    @JsonProperty("cargo")
    private CargoDTO cargo;

    /**
     * 保价信息
     */
    @JsonProperty("insured")
    private InsuredDTO insured;

    /**
     * 服务类型
     */
    @JsonProperty("service")
    private ServiceDTO service;

}
